<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>HexFiend: HFSharedMemoryByteSlice Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">HexFiend
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Instance Methods</a> &#124;
<a href="interface_h_f_shared_memory_byte_slice-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">HFSharedMemoryByteSlice Class Reference<div class="ingroups"><a class="el" href="group__model.html">Model</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>A subclass of <a class="el" href="interface_h_f_byte_slice.html" title="A class representing a source of data for an HFByteArray. ">HFByteSlice</a> for working with data stored in memory.  
 <a href="interface_h_f_shared_memory_byte_slice.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for HFSharedMemoryByteSlice:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_h_f_shared_memory_byte_slice.png" usemap="#HFSharedMemoryByteSlice_map" alt=""/>
  <map id="HFSharedMemoryByteSlice_map" name="HFSharedMemoryByteSlice_map">
<area href="interface_h_f_byte_slice.html" title="A class representing a source of data for an HFByteArray. " alt="HFByteSlice" shape="rect" coords="0,56,169,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Instance Methods</h2></td></tr>
<tr class="memitem:ad73924d8277aaf3d6f94af047483663e"><td class="memItemLeft" align="right" valign="top">(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_shared_memory_byte_slice.html#ad73924d8277aaf3d6f94af047483663e">initWithUnsharedData:</a></td></tr>
<tr class="separator:ad73924d8277aaf3d6f94af047483663e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6788da79e8bad29a31b3759976ab9e8"><td class="memItemLeft" align="right" valign="top">(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_shared_memory_byte_slice.html#af6788da79e8bad29a31b3759976ab9e8">initWithData:</a></td></tr>
<tr class="separator:af6788da79e8bad29a31b3759976ab9e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc98c8b2a75dfe954c0935f3fd99d58c"><td class="memItemLeft" align="right" valign="top">(instancetype)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_shared_memory_byte_slice.html#acc98c8b2a75dfe954c0935f3fd99d58c">initWithData:offset:length:</a></td></tr>
<tr class="separator:acc98c8b2a75dfe954c0935f3fd99d58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_interface_h_f_byte_slice"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_interface_h_f_byte_slice')"><img src="closed.png" alt="-"/>&#160;Instance Methods inherited from <a class="el" href="interface_h_f_byte_slice.html">HFByteSlice</a></td></tr>
<tr class="memitem:a145b439ab365eba8387f6f39c9558ad6 inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(unsigned long long)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#a145b439ab365eba8387f6f39c9558ad6">length</a></td></tr>
<tr class="separator:a145b439ab365eba8387f6f39c9558ad6 inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c95912198358d73730de8aa53b56c01 inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#a3c95912198358d73730de8aa53b56c01">copyBytes:range:</a></td></tr>
<tr class="separator:a3c95912198358d73730de8aa53b56c01 inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a955b9f5a9ca54031c6d2b185c3adbef1 inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_byte_slice.html">HFByteSlice</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#a955b9f5a9ca54031c6d2b185c3adbef1">subsliceWithRange:</a></td></tr>
<tr class="separator:a955b9f5a9ca54031c6d2b185c3adbef1 inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07d6bdb1e6133abd396792a6d4f7a174 inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_byte_slice.html">HFByteSlice</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#a07d6bdb1e6133abd396792a6d4f7a174">byteSliceByAppendingSlice:</a></td></tr>
<tr class="separator:a07d6bdb1e6133abd396792a6d4f7a174 inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae09995093b464c0016dc1337dc5124df inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#ae09995093b464c0016dc1337dc5124df">isSourcedFromFile</a></td></tr>
<tr class="separator:ae09995093b464c0016dc1337dc5124df inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bb3be9593aed4f2ddaa24b50ac818da inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="struct_h_f_range.html">HFRange</a>)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#a0bb3be9593aed4f2ddaa24b50ac818da">sourceRangeForFile:</a></td></tr>
<tr class="separator:a0bb3be9593aed4f2ddaa24b50ac818da inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c49476fd844bb0f18621471f41981a3 inherit pub_methods_interface_h_f_byte_slice"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_h_f_byte_range_attribute_array.html">HFByteRangeAttributeArray</a> *)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_h_f_byte_slice.html#a5c49476fd844bb0f18621471f41981a3">attributesForBytesInRange:</a></td></tr>
<tr class="separator:a5c49476fd844bb0f18621471f41981a3 inherit pub_methods_interface_h_f_byte_slice"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="interface_h_f_shared_memory_byte_slice.html" title="A subclass of HFByteSlice for working with data stored in memory. ">HFSharedMemoryByteSlice</a> is a subclass of <a class="el" href="interface_h_f_byte_slice.html" title="A class representing a source of data for an HFByteArray. ">HFByteSlice</a> that represents a portion of data from memory, e.g. typed or pasted in by the user. The term "shared" refers to the ability for mutiple HFSharedMemoryByteSlices to reference the same NSData; it does not mean that the data is in shared memory or shared between processes.</p>
<p>Instances of <a class="el" href="interface_h_f_shared_memory_byte_slice.html" title="A subclass of HFByteSlice for working with data stored in memory. ">HFSharedMemoryByteSlice</a> are immutable (like all instances of <a class="el" href="interface_h_f_byte_slice.html" title="A class representing a source of data for an HFByteArray. ">HFByteSlice</a>). However, to support efficient typing, the backing data is an instance of NSMutableData that may be grown. A referenced range of the NSMutableData will never have its contents changed, but it may be allowed to grow larger, so that the data does not have to be copied merely to append a single byte. This is implemented by overriding the -byteSliceByAppendingSlice: method of <a class="el" href="interface_h_f_byte_slice.html" title="A class representing a source of data for an HFByteArray. ">HFByteSlice</a>. </p>
</div><h2 class="groupheader">Method Documentation</h2>
<a id="ad73924d8277aaf3d6f94af047483663e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad73924d8277aaf3d6f94af047483663e">&sect;&nbsp;</a></span>initWithUnsharedData:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (instancetype) initWithUnsharedData: </td>
          <td></td>
          <td class="paramtype">(NSData *)&#160;</td>
          <td class="paramname"><em>data</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="af6788da79e8bad29a31b3759976ab9e8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6788da79e8bad29a31b3759976ab9e8">&sect;&nbsp;</a></span>initWithData:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (instancetype) initWithData: </td>
          <td></td>
          <td class="paramtype">(NSMutableData *)&#160;</td>
          <td class="paramname"><em>data</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="acc98c8b2a75dfe954c0935f3fd99d58c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc98c8b2a75dfe954c0935f3fd99d58c">&sect;&nbsp;</a></span>initWithData:offset:length:()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (instancetype) <a class="el" href="interface_h_f_shared_memory_byte_slice.html#af6788da79e8bad29a31b3759976ab9e8">initWithData:</a> </td>
          <td></td>
          <td class="paramtype">(NSMutableData *)&#160;</td>
          <td class="paramname"><em>data</em></td>
        </tr>
        <tr>
          <td class="paramkey">offset:</td>
          <td></td>
          <td class="paramtype">(NSUInteger)&#160;</td>
          <td class="paramname"><em>offset</em></td>
        </tr>
        <tr>
          <td class="paramkey">length:</td>
          <td></td>
          <td class="paramtype">(NSUInteger)&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="_h_f_shared_memory_byte_slice_8h_source.html">HFSharedMemoryByteSlice.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>
